본문으로 건너뛰기

05.15 일지

🎯 Fragment LifeCycle 공부 1

: 다른 Fragment로 변경되는 상황에서 기존 Fragment View가 유지돼서 돌아왔을 때 View가 겹쳐서 보이는 문제핸들링을 위해서

참고: https://developer.android.com/guide/fragments/lifecycle


LifeCycle 상태

  • INITIALIZED
  • CREATED
  • STARTED
  • RESUMED
  • DESTORYED

LifeCycleOwner의 callback 함수들

  • onCreate()
  • onStart()
  • onResume()
  • onPause()
  • onStop()
  • onDestroy()

INITIALIZED 상태

: Fragment가 초기화된 상태
⇒ FragmenManager가 해당 Fragment의 생애주기를 관리한다

FragmentManger

: Fragment의 LifeCycle 상태, 상황을 확인하고 그 상황으로 이동한다
onAttach(), onDetach()
↑ FragmentManager가 하는 일 중 일부

onAttach() 콜백함수

: Fragment가 FragmentManager에 추가될 때 = host Activity에 attach될 때

  • FragmentManager의 findFragmentById()가 해당 fragment를 반환한다 = fragment가 active해진다
  • LifeCycle State의 변화 이전에 항상 실행된다

onDetach() 콜백함수

: Fragment가 FragmentManager에서 삭제될 때 = host Activity에서 detach될 때

  • FragmentManager의 findFragmentById()가 해당 fragment를 반환하지못한다 = fragment가 deactive해진다
  • LifeCycle State 변화 이후에 항상 실행된다.

정리

Fragment가 Attach될 때 핸들링(onAttach()) ⇒ 상태변화시 핸들링(LifeCycleOwner 메소드들) ⇒ Fragment가 Detach될 때 핸들링(onDetach())

LifeCycleOwner의 메소드들

  • onCreate()
  • onStart()
  • onResume()
  • onPause()
  • onStop()
  • onDestroy()